package com.wanxin.wb.common.support.exception;






/**
 * <B>Description:</B> 错误编码常量<br>
 * <B>Create on:</B> 2015年3月17日 下午3:51:41<br>
 *
 * @author 
 * @version 1.0
 */
public class SystemErrorCodeConstants {
    /*
                 编码说明：
           1 所有系统编码为1位字母+4位数字组成 ,第1位字母表示类别,后面4位数字为从1开始递增,如果数值长度不足4位,左边补0
           2 第1位字母表示类别,值为从A~Z
           A :表示系统Java级别错误，如空指针异常   ,常量命名上以 SYS_开头
           B :表示业务错误,如卖场编号不能为空的错误,常量命名上以 BIZ_开头
           C :表示系统数据库基本错误,如数据库连接不上异常,常量命名上以DB_开头
           
           目前的几种异常都存在交集,比如一个异常可能是Java异常，也可以理解为业务异常,优先级为B > C > A
           如卖场号没传：
           首先优先判断为业务异常,卖场号在这个业务中不能为空，类型为B
           如果代码中无法判断为业务异常,应该看是否能抓住判断为数据库异常,类型为C
           如果也没法判断为数据库异常，最后只能捕获为java异常,类型为A
         
           大家在使用异常时，一定要先查看是否异常存在同样的异常抛出，不要同一个错误存在两种编码，定期做CodeReview
     */

    //--------------------------------------系统错误----------------------------------------
    //位置错误
    public static final CodeDesc SYS_UNKNOWN_ERROR                     = new CodeDesc("A0000",
                                                                           "未知错误");
    //配置文件[/application.properties]不存在
    public static final CodeDesc SYS_CONFIG_FILE_NOT_EXIST             = new CodeDesc("A0001",
                                                                           "配置文件[/application.properties]不存在");
    // 配置[/application.properties]格式错误,解析失败    
    public static final CodeDesc SYS_CONFIG_FILE_PARSE_ERROR           = new CodeDesc("A0002",
                                                                           "配置[/application.properties]格式错误,解析失败");

    public static final CodeDesc SYS_REQUEST_FILE_LOAD_ERROR           = new CodeDesc("A0100",
                                                                           "请求模版request.xml类型文件加载失败");

    //Rest地址找不到
    public static final CodeDesc SYS_REST_URL_NOT_FOUND                = new CodeDesc("A0003",
                                                                           "访问的rest地址不存在");
    //3DES加密失败
    public static final CodeDesc SYS_ENCRYPT_FAILED                    = new CodeDesc("A0004",
                                                                           "3DES加密失败");

    //--------------------------------------系统错误,参数相关请求错误----------------------------------------
    public static final CodeDesc SYS_INVALIDATE_PARAMETER              = new CodeDesc("A0005",
                                                                           "无效的请求参数");
    public static final CodeDesc SYS_PARAMETER_CANT_BE_NULL            = new CodeDesc("A0006",
                                                                           "参数不能为空");

    //通用的内部错误
    public static final CodeDesc SYS_COMMON_INNER_ERROR                = new CodeDesc("A0007",
                                                                           "内部错误");
    public static final CodeDesc SYS_COMMON_PARAMETER_TOO_BIG          = new CodeDesc("A0008",
                                                                           "参数过长");
    public static final CodeDesc SYS_COMMON_NOT_EXISTS                 = new CodeDesc("A0009",
                                                                           "数据项不存在");
    public static final CodeDesc SYS_COMMON_EXISTS                     = new CodeDesc("A0009",
                                                                           "数据已经存在");
    //--------------------------------------系统使用缓存平台组件错误----------------------------------------

    //--------------------------------------数据库错误----------------------------------------
    //通用的数据库异常处理,可以根据需要在细化不同的数据库异常信息
    public static final CodeDesc DB_DATA_ACCESS_EXCEPTION              = new CodeDesc("C0001",  "数据库异常");

    //--------------------------------------业务错误信息----------------------------------------


}
